import Credential;

typedef HttpRequest;
typedef HttpResponse;
typedef HttpHeader;

type @credential = Credential;

init(cred: Credential){
    @credential = cred;
}

async function InvokeHTTPTrigger(url: string, method: string, body: bytes, headers: HttpHeader): HttpResponse

async function InvokeAnonymousHTTPTrigger(url: string, method: string, body: bytes, headers: HttpHeader): HttpResponse

async function SendHTTPRequestWithAuthorization(req: HttpRequest): HttpResponse

async function SendHTTPRequest(req: HttpRequest): HttpResponse

async function SignRequest(req: HttpRequest): HttpRequest

async function SignRequestWithContentMD5(req: HttpRequest, contentMD5: string): HttpRequest

async function BuildHTTPRequest(url: string, method: string, body: bytes, headers: HttpHeader): HttpRequest